/**
 * Created by zycool on 2016/8/17.
 * 外部领用信息 - 设备管理
 */

;(function($,window,document,undefined){

    /*** 查询表单 ***/
    // 单位
    var $useCompany = $('#JQ_useCompany');
    // 领用人
    var $useUser = $('#JQ_useUser');
    // 联系电话
    var $mobile = $('#JQ_mobile');
    // 设备编号
    var $eqptEquipmentId = $('#JQ_eqptEquipmentId').select3({search:false});
    // 设备用途
    var $pigTaskId = $('#JQ_pigTaskId').select3({search:false});
    // 领用日期1
    var $lybdate = $('#JQ_lybdate');
    // 领用日期2
    var $lyedate = $('#JQ_lyedate');
    // 归还日期1
    var $ghbdate = $('#JQ_ghbdate');
    // 归还日期2
    var $ghedate = $('#JQ_ghedate');
    // 表格
    var $table_01 = $('#JQ_datatable_01').checkbox3();

    /*** 新建 & 编辑 ***/
    var $use_id = $('#JQ_use_id');
    var $useCompany_edit = $('#JQ_useCompany_edit');
    var $useUser_edit = $('#JQ_useUser_edit');
    var $mobile_edit = $('#JQ_mobile_edit');
    var $eqptEquipmentId_edit = $('#JQ_eqptEquipmentId_edit').select3({search:false});
    var $pigTaskId_edit = $('#JQ_pigTaskId_edit').select3({search:false});
    var $startDate_edit = $('#JQ_startDate_edit');
    var $endDate_edit = $('#JQ_endDate_edit');
    var $remark_edit = $('#JQ_remark_edit');
    $startDate_edit.datetimepicker({
        timepicker: false,
        format: 'Y-m-d',
        scrollInput: false,
        style: 'z-index:102'
    });
    $endDate_edit.datetimepicker({
        timepicker: false,
        format: 'Y-m-d',
        scrollInput: false,
        style: 'z-index:102'
    });
    var $action_form = $('#JQ_action_form');

    /*** 初始数据项 ***/
    // 条件对象
    var filter = {
        // 查询
        getCondition: function(data){
            var filter = {};
            filter.mode = true;
            // 分页参数
            if(data){
                if (data.start == 0) {
                    filter['jsonBean.pageNum'] = 1;
                } else {
                    filter['jsonBean.pageNum'] = data.start / 10 + 1;
                }
                filter['jsonBean.pageCount'] = data.length;
            }
            // 单位
            filter.useCompany = function(){
                var v  = $useCompany.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 领用人
            filter.useUser = function(){
                var v  = $useUser.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 联系电话
            filter.mobile = function(){
                var v  = $mobile.val();
                if(v){
                return v;
                }
                return '';
            }();
            // 设备编号
            filter.eqptEquipmentId = function(){
                var v  = $eqptEquipmentId.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 设备用途
            filter.pigTaskId = function(){
                var v  = $pigTaskId.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 领用日期1
            filter.bstartDate = function(){
                var v  = $lybdate.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 领用日期2
            filter.estartDate = function(){
                var v1  = $lybdate.val();
                var v2  = $lyedate.val();
                if(v2){
                    if(v1){
                        if(!(Dyy.checkDateLate(v1,v2))){
                            $lyedate.TIP({content:'结束日期应晚于开始日期！'});
                            filter.mode = false;
                        }
                    }
                    return v2;
                }
                return '';
            }();
            // 归还日期1
            filter.splanEndDate = function(){
                var v  = $ghbdate.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 归还日期2
            filter.eplanEndDate = function(){
                var v1  = $ghbdate.val();
                var v2  = $ghedate.val();
                if(v2){
                    if(v1){
                        if(!(Dyy.checkDateLate(v1,v2))){
                            $ghedate.TIP({content:'结束日期应晚于开始日期！'});
                            filter.mode = false;
                        }
                    }
                    return v2;
                }
                return '';
            }();

            return filter;
        },
        // 新建 & 编辑
        getCondition2: function(){
            var filter = {};
            filter.mode = true;
            // ID
            filter.id = function(){
                var v  = $use_id.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 使用单位
            filter.useCompany = function(){
                var v  = $useCompany_edit.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 领用人
            filter.useUser = function(){
                var v  = $useUser_edit.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 联系电话
            filter.mobile = function(){
                var v  = $mobile_edit.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 领用日期
            filter.startDate = function(){
                var v  = $startDate_edit.val();
                if(v){
                    return v;
                }
                return '';
            }();
            // 归还日期
            filter.planEndDateStr = function(){
                var v1  = $startDate_edit.val();
                var v2  = $endDate_edit.val();
                if(v2){
                    if(v1){
                        if(!(Dyy.checkDateLate(v1,v2))){
                            $endDate_edit.TIP({
                                content: '归还日期应晚于领用日期!'
                            });
                            filter.mode = false;
                        }
                    }
                    return v2;
                }
                return '';
            }();
            // 设备编号
            filter.eqptEquipmentId = function(){
                var v  = $eqptEquipmentId_edit.val();
                if(v){
                    return v;
                }else{
                    $eqptEquipmentId_edit.element.TIP({
                        content: '设备编号不能为空!'
                    });
                    filter.mode = false;
                }
                return '';
            }();
            // 设备用途
            filter.pigTaskId = function(){
                var v  = $pigTaskId_edit.val();
                if(v){
                    return v;
                }else{
                    $pigTaskId_edit.element.TIP({
                        content: '设备编号不能为空!'
                    });
                    filter.mode = false;
                }
                return '';
            }();
            // 设备状态
            filter.createRemark = function(){
                var v  = $remark_edit.val();
                if(v){
                    return v;
                }
                return '';
            }();

            return filter;
        },
        // IDARR
        getIdArr: function(){
            var arr = [];
            var $chks = $table_01.find('i.zy-checkbox');
            if($chks.length > 0){
                $chks.each(function(){
                    var $this = $(this);
                    if($this.hasClass('active')){
                        var value = $this.attr('data-id');
                        arr.push({name:'id',value:value});
                    }
                });
            }
            return arr;
        }
    };

    // 填充设备编号
    DyyBase.ajax(deviceApi.url_base_list(),{},function(dataset){
        if(dataset.bool){
            var list = dataset.result.list;
            var json = [];
            for(var i = 0, len = list.length; i < len; i++){
                json.push({id:list[i]['id'],text:list[i]['customNumber']});
            }
            // 筛选 - 设备编号
            $eqptEquipmentId.add(json);
            // 编辑 - 设备编号
            $eqptEquipmentId_edit.add(json);
        }
    });

    // 填充设备用途
    DyyBase.ajax(deviceApi.url_external_task(),{},function(dataset){
        if(dataset.bool){
            var list = dataset.result.list;
            var json = [];
            for(var i = 0, len = list.length; i < len; i++){
                json.push({id:list[i]['ID'],text:list[i]['NAME']});
            }
            // 筛选 - 设备编号
            $pigTaskId.add(json);
            // 编辑 - 设备编号
            $pigTaskId_edit.add(json);
        }
    });


    // 初始加载表格
    var DT01 = $table_01.DataTable({
        'language': {
            'paginate': {
                'next': '下一页',
                'previous': '上一页'
            },
            'info': '本次检索共 _TOTAL_ 条，每页显示 10 条，共 _PAGES_ 页',
            'zeroRecords': DyyBase.defect_empty('报告领导，暂时没有数据！','请换别的条件查询吧。'),
            'infoEmpty': ''
        },
        'autoWidth': false,
        'order': [],
        'serverSide': true,
        'pageLength': 10,
        'ordering': false,
        'processing': false,
        'searching': false,
        'lengthChange': false,
        'ajax': function (data, callback) {
            var param = filter.getCondition(data);
            DyyBase.ajax(deviceApi.url_external_list(), param, function (dataset) {
                var returnData = {};
                returnData.draw = data.draw;
                returnData.recordsTotal = dataset.result.total;
                returnData.recordsFiltered = dataset.result.total;
                returnData.data = DyyBase.clearNull(dataset.result.list);
                callback(returnData);
            });
        },
        'drawCallback': function () {
            $('i.zy-checkbox-all').trigger('clear');
        },
        'columns': [
            {
                data: 'id', render: function (data) {
                return '<i class="zy-checkbox" data-id="'+data+'" title="选中"></i>';
            }
            },
            {
                data: 'customNumber', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'modelNumber', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'useCompany', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'useUser', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'mobile', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'startDateStr', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'planEndDateStr', render: function (data) {
                return '<span title="'+data+'">'+data+'</span>';
            }
            },
            {
                data: 'id', render: function (data) {
                return '<i title="编辑" class="zy-record-add-icon" data-id="'+data+'"></i>&nbsp;&nbsp;&nbsp;<i title="删除" class="zy-list-icon-delete" data-id="'+data+'"></i>';
            }
            }
        ]
    });

    // 搜索 - 查询
    $('#JQ_search_btn').click(function(){
        var param = filter.getCondition();
        if(param.mode){
            DT01.draw();
        }
    });

    // 删除
    $table_01.delegate('i.zy-list-icon-delete','click',function(){
        var $this = $(this);
        $this.MSG({
            type: 'confirm',
            content: '您确认要删除此领用信息吗?',
            yesBtnTxt: '确认',
            height: 230,
            yesBtnAct: function(){
                var id = $this.attr('data-id');
                DyyBase.ajax(deviceApi.url_external_delete(),{id:id},function(dataset){
                    if(dataset.bool){
                        $this.MSG({
                            type: 'success',
                            content: '删除成功!',
                            yesBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            },
                            closeBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            }
                        });
                    }
                });
            }
        });
    });

    // 批量删除
    $('#JQ_delete_btn').click(function(){
        var $this = $(this);
        var param = filter.getIdArr();
        if(param.length > 0){
            $this.MSG({
                type: 'confirm',
                height: 230,
                content: '您确认要删除选中的领用信息?',
                yesBtnTxt: '确认',
                yesBtnAct: function(){
                    DyyBase.ajax(deviceApi.url_external_delete(),param,function(dataset){
                        if(dataset.bool){
                            $this.MSG({
                                type: 'success',
                                content: '删除成功!',
                                yesBtnAct: function(){
                                    if(DT01){
                                        DT01.draw();
                                    }
                                },
                                closeBtnAct: function(){
                                    if(DT01){
                                        DT01.draw();
                                    }
                                }
                            });
                        }
                    });
                }
            });
        }else{
            $this.MSG({
                content: '请选择要删除的领用信息!'
            });
        }
    });

    // 编辑
    $table_01.delegate('i.zy-record-add-icon','click',function(){
        var $this = $(this);
        var $tr = $this.parent('td').parent('tr');
        var data = DT01.row($tr).data();
        if(data){
            // 填充数据
            $use_id.val(data.id);

            $useCompany_edit.val(data.useCompany);
            $useUser_edit.val(data.useUser);
            $mobile_edit.val(data.mobile);

            $startDate_edit.val(data.startDateStr);
            $endDate_edit.val(data.planEndDateStr);

            $eqptEquipmentId_edit.fit(data.eqptEquipmentId);
            $pigTaskId_edit.fit(data.pigTaskId);

            $remark_edit.val(data.createRemark);

            var wind = $this.WIND({
                width: 750,
                height: 500,
                title: '编辑',
                actionBox: 'div.zy-edit-eqpt',
                yesBtnAct: function(){
                    actionEqpt(wind.clear,data);
                },
                closeBtnAct: function(){
                    $action_form.reset();
                    wind.clear();
                },
                noBtnAct: function(){
                    $action_form.reset();
                    wind.clear();
                }
            });
        }
    });

    // 新建
    $('#JQ_create_btn').click(function(){
        $(this).WIND({
            width: 750,
            height: 500,
            title: '新建',
            actionBox: 'div.zy-edit-eqpt',
            yesBtnAct: actionEqpt,
            resetForm: $action_form
        });
    });

    // 新建 / 编辑
    function actionEqpt(callback,data){
        var url, verify = $action_form.verify(), title = '';
        if(verify === true){
            if(data){
                url = deviceApi.url_external_edit();
                title = '编辑';
            }else{
                url = deviceApi.url_external_add();
                title = '新建';
            }
            var param = filter.getCondition2();
            if(param.mode){
                if(callback instanceof Function){
                    callback();
                }
                DyyBase.ajax(url,param,function(dataset){
                    if(dataset.bool){
                        $(this).MSG({
                            type: 'success',
                            content: title+'成功!',
                            yesBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            },
                            closeBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            }
                        });
                        $action_form.reset();
                    }else{
                        $(this).MSG({
                            type: 'error',
                            content: dataset.result,
                            yesBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            },
                            closeBtnAct: function(){
                                if(DT01){
                                    DT01.draw();
                                }
                            }
                        });
                        $action_form.reset();
                    }
                })
            }
        }
    }

})(jQuery,window,document);